<?php
class TournoisController extends Osml_Controller_Action
{

    public function indexAction()
    {
        $model = new Back_Model_Tournois();
        $liste = $model->lister();
        
        $this->view->liste = $liste;
    }

    public function voirAction()
    {
        $request = $this->getRequest();
        $id = $request->getParam("id", 0);
        $model = new Back_Model_Tournois($id);
        
        $form = new Front_Form_Tournois();
        
        $this->view->form = $form;
        $this->view->model = $model;
        
        $affichageNomAuteurNews = Back_Model_Config::recuperationValeurParCle(Osml_Global_Constantes::OSML_CONFIG_HOME_NEWS_NOM_AFFICHAGE, "valeur");
        switch ($affichageNomAuteurNews)
        {
            case "prenom-nom":
                $methodeAffichageAuteur = "getPrenomNom";
            break;
            case "pseudo":
            default:
                $methodeAffichageAuteur = "getPseudo";
            break;
        }
        $this->view->methodeAffichageAuteur = $methodeAffichageAuteur;
    }

    public function inscriptionAction()
    {
        $request = $this->getRequest();
        $id = $request->getParam("id", 0);
        
        if ($id == 0) {
            throw new Zend_Exception(__("Un tournoi doit être précisé pour faire une inscription"));
        }
        
        $model = new Back_Model_Tournois($id);
        if ($model->getId() == 0) {
            throw new Zend_Exception(__("Impossible de récupérer ce tournoi en base"));
        }
        
        if (! $model->getOuvert()) {
            throw new Zend_Exception(sprintf(__("Le tournoi '%s' n'est pas ouvert à l'inscription"), $model->getNom()));
        }
        
        $utilisateur = Jnd_App::getEnvironnement()->getUtilisateurCourant();
        if (! is_null($utilisateur)) {
            $options['connecte'] = (bool) $utilisateur->getId();
            $idUtilisateurConnecte = (int) $utilisateur->getId();
        } else {
            $options['connecte'] = false;
            $idUtilisateurConnecte = (int) 0;
        }
        
        $form = new Front_Form_Tournois("Formulairejndpro", $options);
        
        if ($request->isPost()) {
            if ($form->isValid($request->getPost())) {
                $liaison = Back_Model_UtilisateurTournoi::chercherUtilisateurTournoi($idUtilisateurConnecte, $id);
                if ($liaison === false) {
                    // Pas encore de liaison alors on la crée
                    $liaison = new Back_Model_UtilisateurTournoi();
                    $liaison->setIdUtilisateur($idUtilisateurConnecte);
                    $liaison->setIdTournoi($id);
                    $liaison->setPresence($form->getElement("presence")->getValue());
                    $liaison->setApporte($form->getElement("apporte")->getValue());
                    $liaison->setNom($form->getElement("nom")->getValue());
                    $liaison->setPrenom($form->getElement("prenom")->getValue());
                } else {
                    $liaison = new Back_Model_UtilisateurTournoi($liaison);
                    $liaison->setPresence($form->getElement("presence")->getValue());
                    $liaison->setApporte($form->getElement("apporte")->getValue());
                }
                $liaison->sauver();
                $this->_helper->flashMessenger(__("Votre inscription a bien été prise en compte"));
                $this->redirect("index");
            }
        } else {
            $datas = $model->toArray();
            $datas['nomTournoi'] = $model->getNom();
            $datas['nom'] = "";
            $form->populate($datas);
            if ($options['connecte'] === true) {
                $liaison = Back_Model_UtilisateurTournoi::chercherUtilisateurTournoi($idUtilisateurConnecte, $id);
                if ($liaison !== false) {
                    $model = new Back_Model_UtilisateurTournoi($liaison);
                    $form->populate($model->toArray());
                    
                    $this->_helper->flashMessenger(__("Vous êtes déjà inscrit, vos informations ont été rechargées"));
                }
                $form->populate($utilisateur->toArray());
            }
        }
        
        $this->view->form = $form;
    }
}

